BEGIN;
-- typy
DROP TYPE kinorez_rez_holder CASCADE;
DROP TYPE kinorez_widziane_filmy_holder CASCADE;
-- tabele
DROP TABLE IF EXISTS "auth_message" CASCADE;
DROP TABLE IF EXISTS "auth_user" CASCADE;
DROP TABLE IF EXISTS "auth_user_groups" CASCADE;
DROP TABLE IF EXISTS "auth_user_user_permissions" CASCADE;
DROP TABLE IF EXISTS "auth_group" CASCADE;
DROP TABLE IF EXISTS "auth_group_permissions" CASCADE;
DROP TABLE IF EXISTS "auth_permission" CASCADE;
DROP TABLE IF EXISTS "django_session" CASCADE;
DROP TABLE IF EXISTS "django_site" CASCADE;
DROP TABLE IF EXISTS "django_content_type" CASCADE;
DROP TABLE IF EXISTS "django_admin_log" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_rezerwacja" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_promocja" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_limit_rezerwacji" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_ranga_klienta" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_ranga" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_klient" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_mozliwy_bilet" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_typ_biletu" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_instancja_miejsca" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_awaria" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_miejsce" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_seans" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_film" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_sala" CASCADE;
DROP TABLE IF EXISTS "kinorezerwacja_budynek" CASCADE;
-- funkcje
DROP FUNCTION IF EXISTS premiera_filmu(INTEGER) CASCADE;
DROP FUNCTION IF EXISTS sprawdz_czy_awaria_ok(varchar, integer)CASCADE;
DROP FUNCTION IF EXISTS kolejny_seans(timestamp with time zone, integer) CASCADE;
DROP FUNCTION IF EXISTS poprzedni_seans(timestamp with time zone, integer) CASCADE;
DROP FUNCTION IF EXISTS czas_trwania(integer) CASCADE;
DROP FUNCTION IF EXISTS pobierz_id_filmu(integer) CASCADE;
DROP FUNCTION IF EXISTS pobierz_id_sali(integer) CASCADE;
DROP FUNCTION IF EXISTS czas_rozpoczecia(integer) CASCADE;
DROP FUNCTION IF EXISTS czas_przerwy_tech(integer) CASCADE;
DROP FUNCTION IF EXISTS czy_sie_nie_pokrywaja(
    timestamp with time zone, integer,
    timestamp with time zone, integer) CASCADE;
DROP FUNCTION IF EXISTS czy_uzytkownik_jest_adminem(integer) CASCADE;
DROP FUNCTION IF EXISTS najlepsza_znizka(integer, varchar) CASCADE;
DROP FUNCTION IF EXISTS podaj_najlepsza_cena(integer) CASCADE;
DROP FUNCTION IF EXISTS podaj_rezerwacja(integer) CASCADE;
DROP FUNCTION IF EXISTS podaj_rezerwacja_ktore_maja_status_rezerwowane(integer) CASCADE;
DROP FUNCTION IF EXISTS dodaj_sale(integer, text, integer, integer, integer) CASCADE;
DROP FUNCTION IF EXISTS czy_przedzialy_sie_przecinaja(
    timestamp with time zone, timestamp with time zone,
    timestamp with time zone, timestamp with time zone) CASCADE;
DROP FUNCTION IF EXISTS sprawdz_czy_cos_uleglo_awarii
    (timestamp with time zone, timestamp with time zone, integer, text) CASCADE;
DROP FUNCTION IF EXISTS dodaj_seans(integer, integer, timestamp with time zone) CASCADE;
DROP FUNCTION IF EXISTS podaj_filmy_rezerwowane(integer) CASCADE;
DROP FUNCTION IF EXISTS dodaj_nowego_klienta(text, text, text, text)  CASCADE;
DROP FUNCTION IF EXISTS ile_max_rezerwacji(integer) CASCADE;
DROP FUNCTION IF EXISTS ile_rezerwacji_aktualnie(integer) CASCADE;
DROP FUNCTION IF EXISTS zakoncz_awarie(integer, timestamp with time zone) CASCADE;
DROP FUNCTION IF EXISTS wlacz_awarie() CASCADE;
DROP FUNCTION IF EXISTS czy_jest_na_to_rezerwacja(integer) CASCADE;
DROP FUNCTION IF EXISTS ustaw_nowy_stan(integer) CASCADE;
-- od triggery.sql
DROP FUNCTION IF EXISTS ustaw_czas_poczatkowy_awarii() CASCADE;
DROP FUNCTION IF EXISTS ustaw_nowy_stan_instancji_miejsca() CASCADE;
DROP FUNCTION IF EXISTS ustaw_nowy_stan_instancji_miejsca_po_awari() CASCADE;
DROP FUNCTION IF EXISTS zaniechaj_zmiany_czasu_trwania_filmu() CASCADE;
DROP FUNCTION IF EXISTS ustaw_czas_awarii_zmiana() CASCADE;
COMMIT;
